﻿using System;
using GPainter.ElementViews;
using GPainter.Interfaces;

namespace GPainter.Data
{
    //класс вершины
    [Serializable]
    public class NodeData:INodeData
    {
        public Point Pos { get; set; }//позиция вершины
        public string NodeText { set; get; }//основной текст в вершине
        public string Id { get; set; }//идентификатор вершины 
        public HelpRect Boundary { get; set; }//окаймляющий прямоугольник
        public INodeView NodeView { get; set; } //экземпляр View вершины
        public string NType { get; set; }//ссылка на тип вершины
        public MyTreeViewItem VisualTree { get; set; } //иерархия свойств
        public string NodeImage { get; set; }


        public NodeData(string id, string header, HelpRect boundedRect, Point center,
                                        MyTreeViewItem visualTree, string ntype = "")
        {
            Id = id;
            NodeText = header;
            Pos = center;
            Boundary = boundedRect;
            NType = ntype;
            VisualTree = visualTree;
            var viewNode = new NodeView
                               {
                                   DataNode = this,
                                   NodeText = header,
                               };
            viewNode.InitTreeView(visualTree);
            NodeView = viewNode;
        }
    }

    
}
